package thread;

/**
 * 常见的并发安全API：StringBuilder和StringBuffer
 * 1.StringBuilder不是并发安全的（是异步的），多线程场景下不能使用
 * 2.StringBuffer是并发安全的（是同步的），多线程场景下可以使用
 */
public class SyncDemo3 {
    public static void main(String[] args) {
        //StringBuffer sb = new StringBuffer();
        StringBuilder sb = new StringBuilder();
        Thread t1 = new Thread(){
          public void run(){
              for (int i = 0; i < 1000; i++) {
                  sb.append("abc");
              }
          }
        };

        Thread t2 = new Thread(){
          public void run(){
              for (int i = 0; i < 1000; i++) {
                  sb.append("def");
              }
          }
        };

        t1.start();
        t2.start();
        try {
            Thread.sleep(50);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(sb.length());
        System.out.println(sb);


    }
}
